The following example demonstrates how to create a custom data template that will be used in the footers of the first-level groups to display the results of various statistical functions.

XAML
Copy Code
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">

  <Grid.Resources>

    <xcdg:DataGridCollectionViewSource x:Key="cvs_orderdetails"

                                       Source="{Binding Source={x:Static Application.Current},

                                                        Path=OrderDetails}"> 

    <xcdg:DataGridCollectionViewSource.StatFunctions>

       <xcdg:CountFunction ResultPropertyName="orderid_count"

                           SourcePropertyName="OrderID"/>

       <xcdg:SumFunction ResultPropertyName="unitprice_sum"

                         SourcePropertyName="UnitPrice"/>

       <xcdg:AverageFunction ResultPropertyName="unitprice_average"

                             SourcePropertyName="UnitPrice"/>

       <xcdg:SumFunction ResultPropertyName="quantity_sum"

                         SourcePropertyName="Quantity"/>

     </xcdg:DataGridCollectionViewSource.StatFunctions>       

      <xcdg:DataGridCollectionViewSource.GroupDescriptions>

        <xcdg:DataGridGroupDescription PropertyName="ProductID"/>

      </xcdg:DataGridCollectionViewSource.GroupDescriptions>

    </xcdg:DataGridCollectionViewSource>

   <xcdg:StatResultConverter x:Key="valueConverter"/>

  </Grid.Resources>

  <xcdg:DataGridControl x:Name="OrderDetailsGrid"

                        ItemsSource="{Binding Source={StaticResource cvs_orderdetails}}">

    <xcdg:DataGridControl.DefaultGroupConfiguration>

      <xcdg:GroupConfiguration>

        <xcdg:GroupConfiguration.Footers>

          <xcdg:GroupHeaderFooterItemTemplate VisibleWhenCollapsed="True">

            <DataTemplate>

              <Border Background="#999999"

                      BorderBrush="LightBlue"

                      BorderThickness="3"

                      Margin="5" >

                <Grid>

                  <Grid.ColumnDefinitions>

                    <ColumnDefinition/>

                    <ColumnDefinition/>

                  </Grid.ColumnDefinitions>

                  <Grid.RowDefinitions>

                    <RowDefinition/>

                    <RowDefinition/>

                    <RowDefinition/>

                    <RowDefinition/>

                  </Grid.RowDefinitions>

                  <TextBlock Text="Total Orders: " Grid.Row="0" Grid.Column="0"/>

                   <TextBlock Text="{Binding RelativeSource={RelativeSource Self},

                                             Path=(xcdg:DataGridControl.StatContext).orderid_count}"

                              Grid.Row="0" Grid.Column="1"/>                    

                    <TextBlock Text="Total Quantity Sold: " Grid.Row="1" Grid.Column="0"/>

                   <TextBlock Text="{Binding RelativeSource={RelativeSource Self},

                                   Path=(xcdg:DataGridControl.StatContext).quantity_sum}"

                                   Grid.Row="1" Grid.Column="1"/>  

                    <TextBlock Text="Total Sales: " Grid.Row="2" Grid.Column="0"/>

                   <TextBlock Text="{Binding RelativeSource={RelativeSource Self},

                                             Path=(xcdg:DataGridControl.StatContext).unitprice_sum}"

                              Grid.Row="2" Grid.Column="1"/>  

                    <TextBlock Text="Average Unit Price: " Grid.Row="3" Grid.Column="0"/>

                   <TextBlock Text="{Binding RelativeSource={RelativeSource Self},

                                             Path=(xcdg:DataGridControl.StatContext).unitprice_average,

                                             Converter={StaticResource valueConverter},

                                             ConverterParameter=f2}"

                              Grid.Row="3" Grid.Column="1"/>         

                  </Grid>

                </Border> 

              </DataTemplate>  

            </xcdg:GroupHeaderFooterItemTemplate>

          </xcdg:GroupConfiguration.Footers>

        </xcdg:GroupConfiguration>

      </xcdg:DataGridControl.DefaultGroupConfiguration>

      <xcdg:DataGridControl.View>

        <xcdg:CardView AllowCardResize="True"/>

      </xcdg:DataGridControl.View>

    </xcdg:DataGridControl>

  </Grid>